十进制数有数位,以小数点为分界线,小数点左边从右到左依次是:个位,十位,百位,千位,等等;小数点右边从左到右依次是:十分位,百分位,千分位,等等。无论小数点左右的数位,都是高位是相邻的低位的10倍。
依此类推,二进制数也有数位(二进制数的数位也可以用十进制数表示),以小数点为分界线,小数点左边从右到左依次是:一位,二位,四位,八位,十六位,等等;小数点右边从左到右依次是:二分之一位(简称二分位),四分之一位(简称四分位),八分位,,十六分位,等等。无论小数点左右的数位,都是高位是相邻的低位的2倍。
(1)先讨论不带小数点的二进制整数如何转换为十进制数的情况。
如一个二进制数:1101,从最右边往左看:一位是1表示有1个1,二位是0表示二位没有数字只有“清空占位符”,四位是1表示有4个1,八位是1表示有8个1。则二进制数1101转化为十进制数字就是:一位的1乘以1,加上,二位的0乘以2,再加上,四位的1乘以4,再加上,八位的1乘以8,其和就是13。用数学式子写出来就是:
(1×1)+(0×2)+(1×4)+(1×8)
=1+0+4+8
=13
二进制数数位的权重恰好和2的幂的值一一对应(数位权重就是某个数位上的1代表是几个1),如:
一位权重(此位上的1就代表1个1)对应2的0次幂,
二位权重(此位上的1就代表2个1)对应2的1次幂,
四位权重(此位上的1就代表4个1)对应2的2次幂,
八位权重(此位上的1就代表8个1)对应2的3次幂,
等等。
可以用2的幂的形式来代表二进制数的位权,如下表所示:
小数点左边从右至左序号 | 1 | 2 | 3 | 4 | 5 | 6 |
二进制数数位 | 1位 | 2位 | 3位 | 4位 | 5位 | 6位 |
二进制数数值 | 1 | 1 | 1 | 1 | 1 | 1 |
二进制数数位的权重 | 1 | 2 | 4 | 8 | 16 | 32 |
对应2的幂的形式 | 2^0 | 2^1 | 2^2 | 2^3 | 2^4 | 2^5 |
所以用2的幂的形式可以规整的写出小数点左边二进制数转十进制数的一般表达式,如下所示:
(第1位数值×2的0次幂)+(第2位数值×2的1次幂)+
(第3位数值×2的2次幂)+(第4位数值×2的3次幂)+
(第5位数值×2的4次幂)+···(第几位数值×2的几次幂-1)
(2)二进制小数如何转换为十进制数的情况。
如二进制小数:0.1101,从小数点右边由左往右看:二分位是1表示二分位有一个二分之一,四分位是1表示四分位有一个四分之一,八分位是0表示八分位没有数字只有“清空占位符”,十六分位是1表示十六分位有一个十六分之一,则二进制小数0.1101转化为十进制数就是:二分位的1乘以二分之一,加上,四分位的1乘以四分之一,再加上,八分位的0乘以八分之一,再加上,十六分位的1乘以十六分之一,其和就是0.8125。用数学式子写出来就是:
(1×2分之1)+(1×4分之1)+(0×8分之1)+(1×16分之1)
=1/2+1/4+0+1/16
=8/16+4/16+1/16
=13/16
=16分之13
=0.8125
二进制小数的数位权重恰好和2的负幂的值一一对应,如:
二分位权重(此位上的1就代表1个2分之1)对应2的-1次幂,
四分位权重(此位上的1就代表1个4分之1)对应2的-2次幂,
八分位权重(此位上的1就代表1个8分之1)对应2的-3次幂,
等等。
所以用2的负幂的形式可以规整的写出二进制小数转十进制数的一般表达式,如下所示(小数点右边由左往右看):
(第1位数值×2的-1次幂)+(第2位数值×2的-2次幂)+(第3位数值×2的-3次幂)+···(第几位数值×2的负几次幂)
(3)只要将二进制整数转换规则和二进制小数转换规则数合起来,就可以将一般的二进制数转换为十进制数了。